package cn.iocoder.yudao.module.erp.dal.mysql.contractinfo;

import java.util.*;

import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO;
import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.in.ErpPurchaseInRespVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.contractinfo.ContractInfoDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.customerinfo.CustomerInfoDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseInDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseInItemDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpSupplierDO;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.erp.controller.admin.contractinfo.vo.*;
import org.apache.ibatis.annotations.Param;

import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;

/**
 * 合同信息 Mapper
 *
 * @author mhc
 */
@Mapper
public interface ContractInfoMapper extends BaseMapperX<ContractInfoDO> {

    @TenantIgnore
    int updateThisAccount(@Param("contractInfoDO")ContractInfoDO contractInfoDO);
    default PageResult<ContractInfoDO> selectPage(ContractInfoPageReqVO reqVO) {

       /* PageResult<ContractInfoDO> list=selectPage(reqVO, new LambdaQueryWrapperX<ContractInfoDO>()
                .likeIfPresent(ContractInfoDO::getName, reqVO.getName())
                .eqIfPresent(ContractInfoDO::getType, reqVO.getType())
                .eqIfPresent(ContractInfoDO::getCustomerId, reqVO.getCustomerId())
                .betweenIfPresent(ContractInfoDO::getContractCount, reqVO.getContractCount())
                .betweenIfPresent(ContractInfoDO::getContractPrice, reqVO.getContractPrice())
                .betweenIfPresent(ContractInfoDO::getBeginTime, reqVO.getBeginTime())
                .betweenIfPresent(ContractInfoDO::getEndTime, reqVO.getEndTime())
                .eqIfPresent(ContractInfoDO::getStatus, reqVO.getStatus())
                .betweenIfPresent(ContractInfoDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(ContractInfoDO::getId));
        //客户
        List<CustomerInfoDO> customerInfoDOList=*/




        return selectPage(reqVO, new LambdaQueryWrapperX<ContractInfoDO>()
                .likeIfPresent(ContractInfoDO::getName, reqVO.getName())
                .eqIfPresent(ContractInfoDO::getType, reqVO.getType())
                .eqIfPresent(ContractInfoDO::getCustomerId, reqVO.getCustomerId())
                .betweenIfPresent(ContractInfoDO::getContractCount, reqVO.getContractCount())
                .betweenIfPresent(ContractInfoDO::getContractPrice, reqVO.getContractPrice())
                .betweenIfPresent(ContractInfoDO::getBeginTime, reqVO.getBeginTime())
                .betweenIfPresent(ContractInfoDO::getContractDate, reqVO.getContractDate())
                .betweenIfPresent(ContractInfoDO::getEndTime, reqVO.getEndTime())
                .eqIfPresent(ContractInfoDO::getStatus, reqVO.getStatus())
                .betweenIfPresent(ContractInfoDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(ContractInfoDO::getId));
    }

}